package com.attendance.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.attendance.converter.AttendanceStatusConverter;
import com.attendance.converter.ListConverter;
import com.attendance.converter.LocalDateConverter;
import com.attendance.converter.LocalTimeConverter;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;

/**
 * 考勤记录视图类
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ColumnWidth(12)
public class AttendanceVO {
    /**
     * 日期
     */
    @ExcelProperty(value = "日期",converter = LocalDateConverter.class)
    private LocalDate date;
    /**
     * 小组名
     */
    @ExcelProperty("小组")
    private String group;
    /**
     * 院系
     */
    @ExcelProperty("院系")
    private String apartment;
    /**
     * 专业
     */
    @ExcelProperty("专业")
    private String major;
    /**
     * 年级
     */
    @ExcelProperty("年级")
    private String grade;
    /**
     * 班级
     */
    @ExcelProperty("班级")
    private String classCode;
    /**
     * 项目(课程)名称
     */
    @ExcelProperty("项目课程")
    @ColumnWidth(20)
    private String course;
    /**
     * 实训老师
     */
    @ExcelProperty(value = "实训老师",converter = ListConverter.class)
    @ColumnWidth(50)
    private List<String> subTeacher;
    /**
     * 责任老师
     */
    @ExcelProperty("责任老师" )
    private String dutyTeacher;
    /**
     * 学号
     */
    @ExcelProperty("学号")
    private String stuNumber;
    /**
     * 姓名
     */
    @ExcelProperty("姓名")
    private String stuName;
    /**
     * 考勤情况
     */
    @ExcelProperty(value = "考勤情况",converter = AttendanceStatusConverter.class)
    private Integer condition;
    /**
     * 应签到
     */
    @ExcelProperty(value = "应签到",converter = LocalTimeConverter.class)
    private LocalTime shouldSignTime;
    /**
     * 实签到
     */
    @ExcelProperty(value = "实签到",converter = LocalTimeConverter.class)
    private LocalTime signTime;
    /**
     * 应签退
     */
    @ExcelProperty(value = "应签退",converter = LocalTimeConverter.class)
    private LocalTime shouldBackTime;
    /**
     * 实签退
     */
    @ExcelProperty(value = "实签退",converter = LocalTimeConverter.class)
    private LocalTime backTime;
}
